package d2_final_exam.d6_sixth_question;

public class Test02 {
    public static void main(String[] args) {
        // 第一个链表：
        MyLinkedList02<Integer> list1 = new MyLinkedList02<>();
        list1.add(2);
        list1.add(4);
        list1.add(1);
        // 第一个链表的头结点：head1
        MyLinkedList02.Node<Integer> head1 = list1.head;
//        System.out.println(list1.forEach());
        list1.forEach(head1);

        // 第二个链表：
        MyLinkedList02<Integer> list2 = new MyLinkedList02<>();
        list2.add(4);
        list2.add(1);
        list2.add(3);
        // 第二个链表的头结点：head2
        MyLinkedList02.Node<Integer> head2 = list2.head;
        //进行输出展示效果
        list2.forEach(head2);
        System.out.println("============================");

        // 功能1：在MyLinkedList类中，开发一个sort方法，对两个链表分别排序，并分别遍历输出

        //测试: 首先对第一个链表进行测试
        MyLinkedList02.Node<Integer> first = list1.sorted();
        list1.forEach(head1);
        //第二个链表
        System.out.println("===================");
        MyLinkedList02.Node<Integer> second = list2.sorted();
        list1.forEach(head2);
        System.out.println("==============================");
        // 功能2：在MyLinkedList类中，开发一个mergeSort方法，支持将这两个升序排序的链表，合并成一个新链表，要求新链表中的节点仍然是递增排序的。
        // ，然后对新链表遍历输出
        //实际上要完成,一个一个链表调用,然后除数另外一个链表进去
        MyLinkedList02.Node<Integer> newNode = list1.mergeSort(second);

        list1.forEach(newNode);
    }
}
